/*
 * Copyright (C) 2010 TopCoder Inc., All Rights Reserved.
 */
package com.hercules.android.receiver.entities;

import com.hercules.android.receiver.Config;

/**
 * <p>
 * A POJO contains the data of XRETransformAnimation resource.
 * </p>
 * 
 * @author TCSASSEMBER
 * @version 1.0
 */
public class XRETransformAnimation extends XREObject {
    /**
     * Represents the duration that animation should run.
     */
    private Integer duration;

    /**
     * Represents the easing function to use.
     */
    private String easing;

    /**
     * Represents the desired x position.
     */
    private Integer x;

    /**
     * Represents the desired y position.
     */
    private Integer y;

    /**
     * Represents the desired scale multiplier along the x-axis.
     */
    private Double scaleX;

    /**
     * Represents the desired scale multiplier along the y-axis.
     */
    private Double scaleY;

    /**
     * Represents the rotation amount.
     */
    private Double rotation;

    /**
     * Represents the point along the x-axis to use as the action point for
     * interpolation.
     */
    private Integer actionPointX;

    /**
     * Represents the point along the y-axis to use as the action point for
     * interpolation.
     */
    private Integer actionPointY;

    /**
     * Default constructor. Set the default values.
     */
    public XRETransformAnimation() {
        super();
        x = 0;
        y = 0;
        scaleX = 1.0;
        scaleY = 1.0;
        rotation = 0.0;
        actionPointX = 0;
        actionPointY = 0;
        easing = Config.XRE_EASING_LINEAR_IN;
    }

    /**
     * Gets the desired x position.
     * 
     * @return the desired x position
     */
    public Integer getX() {
        return x;
    }

    /**
     * Sets the desired x position.
     * 
     * @param x
     *            the desired x position
     */
    public void setX(Integer x) {
        this.x = x;
    }

    /**
     * Gets the desired y position.
     * 
     * @return the desired y position
     */
    public Integer getY() {
        return y;
    }

    /**
     * Sets the desired y position.
     * 
     * @param y
     *            the desired y position
     */
    public void setY(Integer y) {
        this.y = y;
    }

    /**
     * Gets the desired scale multiplier along the x-axis.
     * 
     * @return the desired scale multiplier along the x-axis
     */
    public Double getScaleX() {
        return scaleX;
    }

    /**
     * Sets the desired scale multiplier along the x-axis.
     * 
     * @param scaleX
     *            the desired scale multiplier along the x-axis
     */
    public void setScaleX(Double scaleX) {
        this.scaleX = scaleX;
    }

    /**
     * Gets the desired scale multiplier along the y-axis.
     * 
     * @return the desired scale multiplier along the y-axis
     */
    public Double getScaleY() {
        return scaleY;
    }

    /**
     * Sets the desired scale multiplier along the y-axis.
     * 
     * @param scaleY
     *            the desired scale multiplier along the y-axis
     */
    public void setScaleY(Double scaleY) {
        this.scaleY = scaleY;
    }

    /**
     * Gets the rotation amount.
     * 
     * @return the rotation amount.
     */
    public Double getRotation() {
        return rotation;
    }

    /**
     * Sets the rotation amount.
     * 
     * @param rotation
     *            the rotation amount
     */
    public void setRotation(Double rotation) {
        this.rotation = rotation;
    }

    /**
     * Gets the point along the x-axis to use as the action point for
     * interpolation.
     * 
     * @return the point along the x-axis to use as the action point for
     *         interpolation
     */
    public Integer getActionPointX() {
        return actionPointX;
    }

    /**
     * Sets the point along the x-axis to use as the action point for
     * interpolation.
     * 
     * @param actionPointX
     *            the point along the x-axis to use as the action point for
     *            interpolation
     */
    public void setActionPointX(Integer actionPointX) {
        this.actionPointX = actionPointX;
    }

    /**
     * Gets the point along the y-axis to use as the action point for
     * interpolation.
     * 
     * @return the point along the y-axis to use as the action point for
     *         interpolation
     */
    public Integer getActionPointY() {
        return actionPointY;
    }

    /**
     * Sets the point along the y-axis to use as the action point for
     * interpolation.
     * 
     * @param actionPointY
     *            the point along the y-axis to use as the action point for
     *            interpolation
     */
    public void setActionPointY(Integer actionPointY) {
        this.actionPointY = actionPointY;
    }

    /**
     * Gets the duration that animation should run.
     * 
     * @return the duration that animation should run
     */
    public Integer getDuration() {
        return duration;
    }

    /**
     * Sets the duration that animation should run.
     * 
     * @param duration
     *            the duration that animation should run
     */
    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    /**
     * Gets the easing function to use.
     * 
     * @return the easing function to use.
     */
    public String getEasing() {
        return easing;
    }

    /**
     * Sets the easing function to use.
     * 
     * @param easing
     *            the easing function to use
     */
    public void setEasing(String easing) {
        this.easing = easing;
    }

}
